This invention relates to a method and apparatus for the point plotting of a line resulting from the execution of graphic orders in a stored program controllable graphics terminal and the raster display thereof. More particularly, the invention relates to structures which tend to minimize the time required for generating the plotted points in an addressable buffer and their subsequent representation on a raster output device.
Devices for printing, scanning or displaying of graphic data are generally of two types, vector or raster. A vector device is capable of drawing or scanning by using a series of elementary movements in two dimension. If these movements are straight segments they are called vectors so that an image would be scanned or made up of a series of straight line segments under direct program control. In contrast, a raster device is driven by a predetermined scan pattern, which pattern exhaustively covers each point of the scan, print, or display area. If the scan pattern consists of an array of dots, generated first as dots per line and then as lines per page, then the pattern is deemed a "raster". For example, consider a cathode ray tube trace which starts at the upper left corner of the screen and scans to the right forming a line. The scan returns to the left edge and starts a second line one dot lower down upon the face of the screen. This is repeated until the whole screen area has been scanned.
The vector mode has been prevalent in many computer products in the past because programming of graphic orders for a terminal display is formulated using magnitude and direction information. Also, the conversion from vector to raster form requires substantial hardware, speed of operation of conversion, i.e., throughput, and raster input/output devices that have synchronous scanning characteristics.
Raster scanning and output are preferable for several reasons. First, the hardware is less expensive than similar vector mode devices. Second, the printing throughput is high for raster since the bit strings representing the raster are generated in a relatively fixed time and are independent of the image content. This latter is not true of vector devices. Third, raster devices represent images with higher degrees of resolution than that of vector mode devices due to the digital dot nature of raster displays. Fourth, raster devices can be driven at a higher information rate for a given resolution than can a vector mode device.
The fundamental problem in the use of raster output devices is the conversion of information from the coded form specified in the graphic orders of a stored program controllable processor into a matrix or raster. As mentioned above, vector mode operation is a convenient representational form used by programmers. Illustratively, one frequently used graphics program language based upon the vector mode of operation in the Graphic Subroutine Package for the IBM 2250. The 2250 is a stored program controlled directed beam display. Also, Newman and Sproull, "Principles of Interactive Computer Graphics", McGraw Hill Book Co., 1973, pp. 485-501, contains an example of a high level graphics programming language of the Algol 60 type.
In order to drive a raster responsive device from vector mode instructions, the implicit form of the vector mode command (draw line: X.sub.1 Y.sub.1 ; X.sub.2 Y.sub.2) must be converted into an explicit dot pattern that approximates as best as possible the true path of the line. This explicit dot pattern may be stored, for example, in a random access memory. Relatedly, the question arises as to whether points being plotted into the memory could be used to directly drive the raster output device rather than having to wait until all the points have been assembled into the memory. Operatively, it has been found desirable to assemble an entire image prior to raster display because graphic orders contain no restriction on the order or direction of the vectors in the image. Thus, there is no way of reliably representing this information on a line at a time basis as the raster pattern is produced.